package com.ruoyi.trainingManagement.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 调整课程记录表对象 course_adjustment_record
 * 
 * @author chenxl
 * @date 2025-08-14
 */
public class CourseAdjustmentRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;

    /** 关联课程排课详情表ID（原课程） */
    @Excel(name = "关联课程排课详情表ID", readConverterExp = "原=课程")
    private String courseScheduleDetailsId;

    /** 关联课程排课明细表ID（原具体课次） */
    @Excel(name = "关联课程排课明细表ID", readConverterExp = "原=具体课次")
    private String classScheduleDetailedId;

    /** 原课程ID */
    @Excel(name = "原课程ID")
    private String originalCourseId;

    /** 原班级名称 */
    @Excel(name = "原班级名称")
    private String originalClassName;

    /** 原教师ID */
    @Excel(name = "原教师ID")
    private String originalTeacherId;

    /** 原教室 */
    @Excel(name = "原教室")
    private String originalClassroom;

    /** 原开始时间（节次） */
    @Excel(name = "原开始时间", readConverterExp = "节=次")
    private String originalStartTime;

    /** 原结束时间（节次） */
    @Excel(name = "原结束时间", readConverterExp = "节=次")
    private String originalEndTime;

    /** 原周几（1-7） */
    @Excel(name = "原周几", readConverterExp = "1=-7")
    private Long originalWeekDay;

    /** 原单双周（1=每周，2=单周，4=双周） */
    @Excel(name = "原单双周", readConverterExp = "1==每周，2=单周，4=双周")
    private Long originalWeekType;

    /** 原开始周 */
    @Excel(name = "原开始周")
    private Long originalStartWeek;

    /** 原结束周 */
    @Excel(name = "原结束周")
    private Long originalEndWeek;

    /** 新教师ID */
    @Excel(name = "新教师ID")
    private String newTeacherId;

    /** 新教室 */
    @Excel(name = "新教室")
    private String newClassroom;

    /** 新开始时间（节次) */
    @Excel(name = "新开始时间", readConverterExp = "新开始时间（节次)")
    private String newStartTime;

    /** 结束时间（节次） */
    @Excel(name = "结束时间", readConverterExp = "节=次")
    private String newEndTime;

    /** 新周几（1-7） */
    @Excel(name = "新周几", readConverterExp = "1=-7")
    private String newWeekDay;

    /** 新单双周（1=每周，2=单周，4=双周 */
    @Excel(name = "新单双周", readConverterExp = "新单双周（1=每周，2=单周，4=双周")
    private String newWeekType;

    /** 新开始周 */
    @Excel(name = "新开始周")
    private String newStartWeek;

    /** 新结束周 */
    @Excel(name = "新结束周")
    private String newEndWeek;

    /** 调整原因（如：教师外出、教室冲突等） */
    @Excel(name = "调整原因", readConverterExp = "如=：教师外出、教室冲突等")
    private Long adjustmentReason;

    /** 调整详细说明 */
    @Excel(name = "调整详细说明")
    private String adjustmentDescription;

    /** 申请人ID（通常为原教师或管理员） */
    @Excel(name = "申请人ID", readConverterExp = "通=常为原教师或管理员")
    private String applicantId;

    /** 审批时间 */
    @Excel(name = "审批时间")
    private String approvalTime;

    /** 审批状态（0=待审批，1=已批准，2=已拒绝） */
    @Excel(name = "审批状态", readConverterExp = "0==待审批，1=已批准，2=已拒绝")
    private String approvalStatus;

    /** 审批人ID */
    @Excel(name = "审批人ID")
    private String approverId;

    /** 审批意见 */
    @Excel(name = "审批意见")
    private String approvalOpinion;

    /** 记录创建时间 */
    @Excel(name = "记录创建时间")
    private String createdAt;

    /** 记录更新时间 */
    @Excel(name = "记录更新时间")
    private String updatedAt;

    /*调整范围*/
    @Excel(name = "调整范围")
    private String adjustmentRange;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setCourseScheduleDetailsId(String courseScheduleDetailsId) 
    {
        this.courseScheduleDetailsId = courseScheduleDetailsId;
    }

    public String getCourseScheduleDetailsId() 
    {
        return courseScheduleDetailsId;
    }

    public void setClassScheduleDetailedId(String classScheduleDetailedId) 
    {
        this.classScheduleDetailedId = classScheduleDetailedId;
    }

    public String getClassScheduleDetailedId() 
    {
        return classScheduleDetailedId;
    }

    public void setOriginalCourseId(String originalCourseId) 
    {
        this.originalCourseId = originalCourseId;
    }

    public String getOriginalCourseId() 
    {
        return originalCourseId;
    }

    public void setOriginalClassName(String originalClassName) 
    {
        this.originalClassName = originalClassName;
    }

    public String getOriginalClassName() 
    {
        return originalClassName;
    }

    public void setOriginalTeacherId(String originalTeacherId) 
    {
        this.originalTeacherId = originalTeacherId;
    }

    public String getOriginalTeacherId() 
    {
        return originalTeacherId;
    }

    public void setOriginalClassroom(String originalClassroom) 
    {
        this.originalClassroom = originalClassroom;
    }

    public String getOriginalClassroom() 
    {
        return originalClassroom;
    }

    public void setOriginalStartTime(String originalStartTime) 
    {
        this.originalStartTime = originalStartTime;
    }

    public String getOriginalStartTime() 
    {
        return originalStartTime;
    }

    public void setOriginalEndTime(String originalEndTime) 
    {
        this.originalEndTime = originalEndTime;
    }

    public String getOriginalEndTime() 
    {
        return originalEndTime;
    }

    public void setOriginalWeekDay(Long originalWeekDay) 
    {
        this.originalWeekDay = originalWeekDay;
    }

    public Long getOriginalWeekDay() 
    {
        return originalWeekDay;
    }

    public void setOriginalWeekType(Long originalWeekType) 
    {
        this.originalWeekType = originalWeekType;
    }

    public Long getOriginalWeekType() 
    {
        return originalWeekType;
    }

    public void setOriginalStartWeek(Long originalStartWeek) 
    {
        this.originalStartWeek = originalStartWeek;
    }

    public Long getOriginalStartWeek() 
    {
        return originalStartWeek;
    }

    public void setOriginalEndWeek(Long originalEndWeek) 
    {
        this.originalEndWeek = originalEndWeek;
    }

    public Long getOriginalEndWeek() 
    {
        return originalEndWeek;
    }

    public void setNewTeacherId(String newTeacherId) 
    {
        this.newTeacherId = newTeacherId;
    }

    public String getNewTeacherId() 
    {
        return newTeacherId;
    }

    public void setNewClassroom(String newClassroom) 
    {
        this.newClassroom = newClassroom;
    }

    public String getNewClassroom() 
    {
        return newClassroom;
    }

    public void setNewStartTime(String newStartTime) 
    {
        this.newStartTime = newStartTime;
    }

    public String getNewStartTime() 
    {
        return newStartTime;
    }

    public void setNewEndTime(String newEndTime) 
    {
        this.newEndTime = newEndTime;
    }

    public String getNewEndTime() 
    {
        return newEndTime;
    }

    public void setNewWeekDay(String newWeekDay) 
    {
        this.newWeekDay = newWeekDay;
    }

    public String getNewWeekDay() 
    {
        return newWeekDay;
    }

    public void setNewWeekType(String newWeekType) 
    {
        this.newWeekType = newWeekType;
    }

    public String getNewWeekType() 
    {
        return newWeekType;
    }

    public void setNewStartWeek(String newStartWeek) 
    {
        this.newStartWeek = newStartWeek;
    }

    public String getNewStartWeek() 
    {
        return newStartWeek;
    }

    public void setNewEndWeek(String newEndWeek) 
    {
        this.newEndWeek = newEndWeek;
    }

    public String getNewEndWeek() 
    {
        return newEndWeek;
    }

    public void setAdjustmentReason(Long adjustmentReason) 
    {
        this.adjustmentReason = adjustmentReason;
    }

    public Long getAdjustmentReason() 
    {
        return adjustmentReason;
    }

    public void setAdjustmentDescription(String adjustmentDescription) 
    {
        this.adjustmentDescription = adjustmentDescription;
    }

    public String getAdjustmentDescription() 
    {
        return adjustmentDescription;
    }

    public void setApplicantId(String applicantId) 
    {
        this.applicantId = applicantId;
    }

    public String getApplicantId() 
    {
        return applicantId;
    }

    public void setApprovalTime(String approvalTime) 
    {
        this.approvalTime = approvalTime;
    }

    public String getApprovalTime() 
    {
        return approvalTime;
    }

    public void setApprovalStatus(String approvalStatus) 
    {
        this.approvalStatus = approvalStatus;
    }

    public String getApprovalStatus() 
    {
        return approvalStatus;
    }

    public void setApproverId(String approverId) 
    {
        this.approverId = approverId;
    }

    public String getApproverId() 
    {
        return approverId;
    }

    public void setApprovalOpinion(String approvalOpinion) 
    {
        this.approvalOpinion = approvalOpinion;
    }

    public String getApprovalOpinion() 
    {
        return approvalOpinion;
    }

    public void setCreatedAt(String createdAt) 
    {
        this.createdAt = createdAt;
    }

    public String getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(String updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public String getUpdatedAt() 
    {
        return updatedAt;
    }
    public String getAdjustmentRange() {
        return adjustmentRange;
    }

    public void setAdjustmentRange(String adjustmentRange) {
        this.adjustmentRange = adjustmentRange;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("courseScheduleDetailsId", getCourseScheduleDetailsId())
            .append("classScheduleDetailedId", getClassScheduleDetailedId())
            .append("originalCourseId", getOriginalCourseId())
            .append("originalClassName", getOriginalClassName())
            .append("originalTeacherId", getOriginalTeacherId())
            .append("originalClassroom", getOriginalClassroom())
            .append("originalStartTime", getOriginalStartTime())
            .append("originalEndTime", getOriginalEndTime())
            .append("originalWeekDay", getOriginalWeekDay())
            .append("originalWeekType", getOriginalWeekType())
            .append("originalStartWeek", getOriginalStartWeek())
            .append("originalEndWeek", getOriginalEndWeek())
            .append("newTeacherId", getNewTeacherId())
            .append("newClassroom", getNewClassroom())
            .append("newStartTime", getNewStartTime())
            .append("newEndTime", getNewEndTime())
            .append("newWeekDay", getNewWeekDay())
            .append("newWeekType", getNewWeekType())
            .append("newStartWeek", getNewStartWeek())
            .append("newEndWeek", getNewEndWeek())
            .append("adjustmentReason", getAdjustmentReason())
            .append("adjustmentDescription", getAdjustmentDescription())
            .append("applicantId", getApplicantId())
            .append("approvalTime", getApprovalTime())
            .append("approvalStatus", getApprovalStatus())
            .append("approverId", getApproverId())
            .append("approvalOpinion", getApprovalOpinion())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("adjustmentRange", getAdjustmentRange())
            .toString();
    }


}
